package hu.bme.mit.androtext.nav.parser.antlr.internal; 

import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
import hu.bme.mit.androtext.nav.services.AndroNavGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalAndroNavParser extends AbstractInternalAntlrParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'modelID'", "'navigation'", "'{'", "'}'", "'activity'", "'uimodel'", "'preferences'", "'tabactivity'", "'top'", "'bottom'", "'tab'", "'image'", "'imagelibrary'", "'path'", "'tabimage'", "'selected'", "'unselected'", "'eventlibrary'", "'event'"
    };
    public static final int RULE_ID=4;
    public static final int T__29=29;
    public static final int T__28=28;
    public static final int T__27=27;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=10;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int RULE_SL_COMMENT=8;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__19=19;
    public static final int RULE_STRING=5;
    public static final int T__16=16;
    public static final int T__15=15;
    public static final int T__18=18;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=6;
    public static final int RULE_WS=9;

    // delegates
    // delegators


        public InternalAndroNavParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalAndroNavParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalAndroNavParser.tokenNames; }
    public String getGrammarFileName() { return "../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g"; }



     	private AndroNavGrammarAccess grammarAccess;
     	
        public InternalAndroNavParser(TokenStream input, AndroNavGrammarAccess grammarAccess) {
            this(input);
            this.grammarAccess = grammarAccess;
            registerRules(grammarAccess.getGrammar());
        }
        
        @Override
        protected String getFirstRuleName() {
        	return "AndroNavRoot";	
       	}
       	
       	@Override
       	protected AndroNavGrammarAccess getGrammarAccess() {
       		return grammarAccess;
       	}



    // $ANTLR start "entryRuleAndroNavRoot"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:67:1: entryRuleAndroNavRoot returns [EObject current=null] : iv_ruleAndroNavRoot= ruleAndroNavRoot EOF ;
    public final EObject entryRuleAndroNavRoot() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleAndroNavRoot = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:68:2: (iv_ruleAndroNavRoot= ruleAndroNavRoot EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:69:2: iv_ruleAndroNavRoot= ruleAndroNavRoot EOF
            {
             newCompositeNode(grammarAccess.getAndroNavRootRule()); 
            pushFollow(FOLLOW_ruleAndroNavRoot_in_entryRuleAndroNavRoot75);
            iv_ruleAndroNavRoot=ruleAndroNavRoot();

            state._fsp--;

             current =iv_ruleAndroNavRoot; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAndroNavRoot85); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleAndroNavRoot"


    // $ANTLR start "ruleAndroNavRoot"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:76:1: ruleAndroNavRoot returns [EObject current=null] : (otherlv_0= 'modelID' ( (lv_name_1_0= RULE_ID ) ) ( (lv_navigation_2_0= ruleNavigation ) ) ( (lv_imageLibrary_3_0= ruleImageLibrary ) )? ( (lv_eventLibrary_4_0= ruleEventLibrary ) )? ) ;
    public final EObject ruleAndroNavRoot() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        EObject lv_navigation_2_0 = null;

        EObject lv_imageLibrary_3_0 = null;

        EObject lv_eventLibrary_4_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:79:28: ( (otherlv_0= 'modelID' ( (lv_name_1_0= RULE_ID ) ) ( (lv_navigation_2_0= ruleNavigation ) ) ( (lv_imageLibrary_3_0= ruleImageLibrary ) )? ( (lv_eventLibrary_4_0= ruleEventLibrary ) )? ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:80:1: (otherlv_0= 'modelID' ( (lv_name_1_0= RULE_ID ) ) ( (lv_navigation_2_0= ruleNavigation ) ) ( (lv_imageLibrary_3_0= ruleImageLibrary ) )? ( (lv_eventLibrary_4_0= ruleEventLibrary ) )? )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:80:1: (otherlv_0= 'modelID' ( (lv_name_1_0= RULE_ID ) ) ( (lv_navigation_2_0= ruleNavigation ) ) ( (lv_imageLibrary_3_0= ruleImageLibrary ) )? ( (lv_eventLibrary_4_0= ruleEventLibrary ) )? )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:80:3: otherlv_0= 'modelID' ( (lv_name_1_0= RULE_ID ) ) ( (lv_navigation_2_0= ruleNavigation ) ) ( (lv_imageLibrary_3_0= ruleImageLibrary ) )? ( (lv_eventLibrary_4_0= ruleEventLibrary ) )?
            {
            otherlv_0=(Token)match(input,11,FOLLOW_11_in_ruleAndroNavRoot122); 

                	newLeafNode(otherlv_0, grammarAccess.getAndroNavRootAccess().getModelIDKeyword_0());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:84:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:85:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:85:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:86:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAndroNavRoot139); 

            			newLeafNode(lv_name_1_0, grammarAccess.getAndroNavRootAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getAndroNavRootRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:102:2: ( (lv_navigation_2_0= ruleNavigation ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:103:1: (lv_navigation_2_0= ruleNavigation )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:103:1: (lv_navigation_2_0= ruleNavigation )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:104:3: lv_navigation_2_0= ruleNavigation
            {
             
            	        newCompositeNode(grammarAccess.getAndroNavRootAccess().getNavigationNavigationParserRuleCall_2_0()); 
            	    
            pushFollow(FOLLOW_ruleNavigation_in_ruleAndroNavRoot165);
            lv_navigation_2_0=ruleNavigation();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getAndroNavRootRule());
            	        }
                   		set(
                   			current, 
                   			"navigation",
                    		lv_navigation_2_0, 
                    		"Navigation");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:120:2: ( (lv_imageLibrary_3_0= ruleImageLibrary ) )?
            int alt1=2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0==23) ) {
                alt1=1;
            }
            switch (alt1) {
                case 1 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:121:1: (lv_imageLibrary_3_0= ruleImageLibrary )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:121:1: (lv_imageLibrary_3_0= ruleImageLibrary )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:122:3: lv_imageLibrary_3_0= ruleImageLibrary
                    {
                     
                    	        newCompositeNode(grammarAccess.getAndroNavRootAccess().getImageLibraryImageLibraryParserRuleCall_3_0()); 
                    	    
                    pushFollow(FOLLOW_ruleImageLibrary_in_ruleAndroNavRoot186);
                    lv_imageLibrary_3_0=ruleImageLibrary();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getAndroNavRootRule());
                    	        }
                           		set(
                           			current, 
                           			"imageLibrary",
                            		lv_imageLibrary_3_0, 
                            		"ImageLibrary");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:138:3: ( (lv_eventLibrary_4_0= ruleEventLibrary ) )?
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==28) ) {
                alt2=1;
            }
            switch (alt2) {
                case 1 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:139:1: (lv_eventLibrary_4_0= ruleEventLibrary )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:139:1: (lv_eventLibrary_4_0= ruleEventLibrary )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:140:3: lv_eventLibrary_4_0= ruleEventLibrary
                    {
                     
                    	        newCompositeNode(grammarAccess.getAndroNavRootAccess().getEventLibraryEventLibraryParserRuleCall_4_0()); 
                    	    
                    pushFollow(FOLLOW_ruleEventLibrary_in_ruleAndroNavRoot208);
                    lv_eventLibrary_4_0=ruleEventLibrary();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getAndroNavRootRule());
                    	        }
                           		set(
                           			current, 
                           			"eventLibrary",
                            		lv_eventLibrary_4_0, 
                            		"EventLibrary");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleAndroNavRoot"


    // $ANTLR start "entryRuleNavigation"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:164:1: entryRuleNavigation returns [EObject current=null] : iv_ruleNavigation= ruleNavigation EOF ;
    public final EObject entryRuleNavigation() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleNavigation = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:165:2: (iv_ruleNavigation= ruleNavigation EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:166:2: iv_ruleNavigation= ruleNavigation EOF
            {
             newCompositeNode(grammarAccess.getNavigationRule()); 
            pushFollow(FOLLOW_ruleNavigation_in_entryRuleNavigation245);
            iv_ruleNavigation=ruleNavigation();

            state._fsp--;

             current =iv_ruleNavigation; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleNavigation255); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleNavigation"


    // $ANTLR start "ruleNavigation"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:173:1: ruleNavigation returns [EObject current=null] : ( () otherlv_1= 'navigation' otherlv_2= '{' ( (lv_mainActivity_3_0= ruleAbstractActivity ) ) ( (lv_activities_4_0= ruleAbstractActivity ) )* otherlv_5= '}' ) ;
    public final EObject ruleNavigation() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_5=null;
        EObject lv_mainActivity_3_0 = null;

        EObject lv_activities_4_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:176:28: ( ( () otherlv_1= 'navigation' otherlv_2= '{' ( (lv_mainActivity_3_0= ruleAbstractActivity ) ) ( (lv_activities_4_0= ruleAbstractActivity ) )* otherlv_5= '}' ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:177:1: ( () otherlv_1= 'navigation' otherlv_2= '{' ( (lv_mainActivity_3_0= ruleAbstractActivity ) ) ( (lv_activities_4_0= ruleAbstractActivity ) )* otherlv_5= '}' )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:177:1: ( () otherlv_1= 'navigation' otherlv_2= '{' ( (lv_mainActivity_3_0= ruleAbstractActivity ) ) ( (lv_activities_4_0= ruleAbstractActivity ) )* otherlv_5= '}' )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:177:2: () otherlv_1= 'navigation' otherlv_2= '{' ( (lv_mainActivity_3_0= ruleAbstractActivity ) ) ( (lv_activities_4_0= ruleAbstractActivity ) )* otherlv_5= '}'
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:177:2: ()
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:178:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getNavigationAccess().getNavigationAction_0(),
                        current);
                

            }

            otherlv_1=(Token)match(input,12,FOLLOW_12_in_ruleNavigation301); 

                	newLeafNode(otherlv_1, grammarAccess.getNavigationAccess().getNavigationKeyword_1());
                
            otherlv_2=(Token)match(input,13,FOLLOW_13_in_ruleNavigation313); 

                	newLeafNode(otherlv_2, grammarAccess.getNavigationAccess().getLeftCurlyBracketKeyword_2());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:191:1: ( (lv_mainActivity_3_0= ruleAbstractActivity ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:192:1: (lv_mainActivity_3_0= ruleAbstractActivity )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:192:1: (lv_mainActivity_3_0= ruleAbstractActivity )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:193:3: lv_mainActivity_3_0= ruleAbstractActivity
            {
             
            	        newCompositeNode(grammarAccess.getNavigationAccess().getMainActivityAbstractActivityParserRuleCall_3_0()); 
            	    
            pushFollow(FOLLOW_ruleAbstractActivity_in_ruleNavigation334);
            lv_mainActivity_3_0=ruleAbstractActivity();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getNavigationRule());
            	        }
                   		set(
                   			current, 
                   			"mainActivity",
                    		lv_mainActivity_3_0, 
                    		"AbstractActivity");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:209:2: ( (lv_activities_4_0= ruleAbstractActivity ) )*
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( (LA3_0==15||(LA3_0>=17 && LA3_0<=18)) ) {
                    alt3=1;
                }


                switch (alt3) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:210:1: (lv_activities_4_0= ruleAbstractActivity )
            	    {
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:210:1: (lv_activities_4_0= ruleAbstractActivity )
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:211:3: lv_activities_4_0= ruleAbstractActivity
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getNavigationAccess().getActivitiesAbstractActivityParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleAbstractActivity_in_ruleNavigation355);
            	    lv_activities_4_0=ruleAbstractActivity();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getNavigationRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"activities",
            	            		lv_activities_4_0, 
            	            		"AbstractActivity");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop3;
                }
            } while (true);

            otherlv_5=(Token)match(input,14,FOLLOW_14_in_ruleNavigation368); 

                	newLeafNode(otherlv_5, grammarAccess.getNavigationAccess().getRightCurlyBracketKeyword_5());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNavigation"


    // $ANTLR start "entryRuleAbstractActivity"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:239:1: entryRuleAbstractActivity returns [EObject current=null] : iv_ruleAbstractActivity= ruleAbstractActivity EOF ;
    public final EObject entryRuleAbstractActivity() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleAbstractActivity = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:240:2: (iv_ruleAbstractActivity= ruleAbstractActivity EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:241:2: iv_ruleAbstractActivity= ruleAbstractActivity EOF
            {
             newCompositeNode(grammarAccess.getAbstractActivityRule()); 
            pushFollow(FOLLOW_ruleAbstractActivity_in_entryRuleAbstractActivity404);
            iv_ruleAbstractActivity=ruleAbstractActivity();

            state._fsp--;

             current =iv_ruleAbstractActivity; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAbstractActivity414); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleAbstractActivity"


    // $ANTLR start "ruleAbstractActivity"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:248:1: ruleAbstractActivity returns [EObject current=null] : (this_Activity_0= ruleActivity | this_TabActivity_1= ruleTabActivity ) ;
    public final EObject ruleAbstractActivity() throws RecognitionException {
        EObject current = null;

        EObject this_Activity_0 = null;

        EObject this_TabActivity_1 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:251:28: ( (this_Activity_0= ruleActivity | this_TabActivity_1= ruleTabActivity ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:252:1: (this_Activity_0= ruleActivity | this_TabActivity_1= ruleTabActivity )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:252:1: (this_Activity_0= ruleActivity | this_TabActivity_1= ruleTabActivity )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==15||LA4_0==17) ) {
                alt4=1;
            }
            else if ( (LA4_0==18) ) {
                alt4=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:253:5: this_Activity_0= ruleActivity
                    {
                     
                            newCompositeNode(grammarAccess.getAbstractActivityAccess().getActivityParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleActivity_in_ruleAbstractActivity461);
                    this_Activity_0=ruleActivity();

                    state._fsp--;

                     
                            current = this_Activity_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:263:5: this_TabActivity_1= ruleTabActivity
                    {
                     
                            newCompositeNode(grammarAccess.getAbstractActivityAccess().getTabActivityParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleTabActivity_in_ruleAbstractActivity488);
                    this_TabActivity_1=ruleTabActivity();

                    state._fsp--;

                     
                            current = this_TabActivity_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleAbstractActivity"


    // $ANTLR start "entryRuleActivity"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:279:1: entryRuleActivity returns [EObject current=null] : iv_ruleActivity= ruleActivity EOF ;
    public final EObject entryRuleActivity() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleActivity = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:280:2: (iv_ruleActivity= ruleActivity EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:281:2: iv_ruleActivity= ruleActivity EOF
            {
             newCompositeNode(grammarAccess.getActivityRule()); 
            pushFollow(FOLLOW_ruleActivity_in_entryRuleActivity523);
            iv_ruleActivity=ruleActivity();

            state._fsp--;

             current =iv_ruleActivity; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleActivity533); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleActivity"


    // $ANTLR start "ruleActivity"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:288:1: ruleActivity returns [EObject current=null] : ( (otherlv_0= 'activity' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'uimodel' ( (otherlv_4= RULE_ID ) ) otherlv_5= '}' ) | this_PreferenceActivity_6= rulePreferenceActivity ) ;
    public final EObject ruleActivity() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_5=null;
        EObject this_PreferenceActivity_6 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:291:28: ( ( (otherlv_0= 'activity' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'uimodel' ( (otherlv_4= RULE_ID ) ) otherlv_5= '}' ) | this_PreferenceActivity_6= rulePreferenceActivity ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:292:1: ( (otherlv_0= 'activity' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'uimodel' ( (otherlv_4= RULE_ID ) ) otherlv_5= '}' ) | this_PreferenceActivity_6= rulePreferenceActivity )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:292:1: ( (otherlv_0= 'activity' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'uimodel' ( (otherlv_4= RULE_ID ) ) otherlv_5= '}' ) | this_PreferenceActivity_6= rulePreferenceActivity )
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==15) ) {
                alt5=1;
            }
            else if ( (LA5_0==17) ) {
                alt5=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;
            }
            switch (alt5) {
                case 1 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:292:2: (otherlv_0= 'activity' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'uimodel' ( (otherlv_4= RULE_ID ) ) otherlv_5= '}' )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:292:2: (otherlv_0= 'activity' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'uimodel' ( (otherlv_4= RULE_ID ) ) otherlv_5= '}' )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:292:4: otherlv_0= 'activity' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'uimodel' ( (otherlv_4= RULE_ID ) ) otherlv_5= '}'
                    {
                    otherlv_0=(Token)match(input,15,FOLLOW_15_in_ruleActivity571); 

                        	newLeafNode(otherlv_0, grammarAccess.getActivityAccess().getActivityKeyword_0_0());
                        
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:296:1: ( (lv_name_1_0= RULE_ID ) )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:297:1: (lv_name_1_0= RULE_ID )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:297:1: (lv_name_1_0= RULE_ID )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:298:3: lv_name_1_0= RULE_ID
                    {
                    lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActivity588); 

                    			newLeafNode(lv_name_1_0, grammarAccess.getActivityAccess().getNameIDTerminalRuleCall_0_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getActivityRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"name",
                            		lv_name_1_0, 
                            		"ID");
                    	    

                    }


                    }

                    otherlv_2=(Token)match(input,13,FOLLOW_13_in_ruleActivity605); 

                        	newLeafNode(otherlv_2, grammarAccess.getActivityAccess().getLeftCurlyBracketKeyword_0_2());
                        
                    otherlv_3=(Token)match(input,16,FOLLOW_16_in_ruleActivity617); 

                        	newLeafNode(otherlv_3, grammarAccess.getActivityAccess().getUimodelKeyword_0_3());
                        
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:322:1: ( (otherlv_4= RULE_ID ) )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:323:1: (otherlv_4= RULE_ID )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:323:1: (otherlv_4= RULE_ID )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:324:3: otherlv_4= RULE_ID
                    {

                    			if (current==null) {
                    	            current = createModelElement(grammarAccess.getActivityRule());
                    	        }
                            
                    otherlv_4=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActivity637); 

                    		newLeafNode(otherlv_4, grammarAccess.getActivityAccess().getUimodelAndroGuiRootCrossReference_0_4_0()); 
                    	

                    }


                    }

                    otherlv_5=(Token)match(input,14,FOLLOW_14_in_ruleActivity649); 

                        	newLeafNode(otherlv_5, grammarAccess.getActivityAccess().getRightCurlyBracketKeyword_0_5());
                        

                    }


                    }
                    break;
                case 2 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:341:5: this_PreferenceActivity_6= rulePreferenceActivity
                    {
                     
                            newCompositeNode(grammarAccess.getActivityAccess().getPreferenceActivityParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_rulePreferenceActivity_in_ruleActivity678);
                    this_PreferenceActivity_6=rulePreferenceActivity();

                    state._fsp--;

                     
                            current = this_PreferenceActivity_6; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleActivity"


    // $ANTLR start "entryRulePreferenceActivity"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:357:1: entryRulePreferenceActivity returns [EObject current=null] : iv_rulePreferenceActivity= rulePreferenceActivity EOF ;
    public final EObject entryRulePreferenceActivity() throws RecognitionException {
        EObject current = null;

        EObject iv_rulePreferenceActivity = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:358:2: (iv_rulePreferenceActivity= rulePreferenceActivity EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:359:2: iv_rulePreferenceActivity= rulePreferenceActivity EOF
            {
             newCompositeNode(grammarAccess.getPreferenceActivityRule()); 
            pushFollow(FOLLOW_rulePreferenceActivity_in_entryRulePreferenceActivity713);
            iv_rulePreferenceActivity=rulePreferenceActivity();

            state._fsp--;

             current =iv_rulePreferenceActivity; 
            match(input,EOF,FOLLOW_EOF_in_entryRulePreferenceActivity723); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRulePreferenceActivity"


    // $ANTLR start "rulePreferenceActivity"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:366:1: rulePreferenceActivity returns [EObject current=null] : (otherlv_0= 'preferences' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'uimodel' ( (otherlv_4= RULE_ID ) ) otherlv_5= '}' ) ;
    public final EObject rulePreferenceActivity() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_5=null;

         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:369:28: ( (otherlv_0= 'preferences' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'uimodel' ( (otherlv_4= RULE_ID ) ) otherlv_5= '}' ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:370:1: (otherlv_0= 'preferences' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'uimodel' ( (otherlv_4= RULE_ID ) ) otherlv_5= '}' )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:370:1: (otherlv_0= 'preferences' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'uimodel' ( (otherlv_4= RULE_ID ) ) otherlv_5= '}' )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:370:3: otherlv_0= 'preferences' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'uimodel' ( (otherlv_4= RULE_ID ) ) otherlv_5= '}'
            {
            otherlv_0=(Token)match(input,17,FOLLOW_17_in_rulePreferenceActivity760); 

                	newLeafNode(otherlv_0, grammarAccess.getPreferenceActivityAccess().getPreferencesKeyword_0());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:374:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:375:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:375:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:376:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePreferenceActivity777); 

            			newLeafNode(lv_name_1_0, grammarAccess.getPreferenceActivityAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getPreferenceActivityRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            otherlv_2=(Token)match(input,13,FOLLOW_13_in_rulePreferenceActivity794); 

                	newLeafNode(otherlv_2, grammarAccess.getPreferenceActivityAccess().getLeftCurlyBracketKeyword_2());
                
            otherlv_3=(Token)match(input,16,FOLLOW_16_in_rulePreferenceActivity806); 

                	newLeafNode(otherlv_3, grammarAccess.getPreferenceActivityAccess().getUimodelKeyword_3());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:400:1: ( (otherlv_4= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:401:1: (otherlv_4= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:401:1: (otherlv_4= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:402:3: otherlv_4= RULE_ID
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getPreferenceActivityRule());
            	        }
                    
            otherlv_4=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePreferenceActivity826); 

            		newLeafNode(otherlv_4, grammarAccess.getPreferenceActivityAccess().getUimodelAndroGuiRootCrossReference_4_0()); 
            	

            }


            }

            otherlv_5=(Token)match(input,14,FOLLOW_14_in_rulePreferenceActivity838); 

                	newLeafNode(otherlv_5, grammarAccess.getPreferenceActivityAccess().getRightCurlyBracketKeyword_5());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "rulePreferenceActivity"


    // $ANTLR start "entryRuleTabActivity"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:425:1: entryRuleTabActivity returns [EObject current=null] : iv_ruleTabActivity= ruleTabActivity EOF ;
    public final EObject entryRuleTabActivity() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTabActivity = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:426:2: (iv_ruleTabActivity= ruleTabActivity EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:427:2: iv_ruleTabActivity= ruleTabActivity EOF
            {
             newCompositeNode(grammarAccess.getTabActivityRule()); 
            pushFollow(FOLLOW_ruleTabActivity_in_entryRuleTabActivity874);
            iv_ruleTabActivity=ruleTabActivity();

            state._fsp--;

             current =iv_ruleTabActivity; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTabActivity884); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleTabActivity"


    // $ANTLR start "ruleTabActivity"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:434:1: ruleTabActivity returns [EObject current=null] : (otherlv_0= 'tabactivity' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_position_2_0= 'top' ) ) | otherlv_3= 'bottom' )? otherlv_4= '{' ( (lv_tabs_5_0= ruleTab ) )+ otherlv_6= '}' ) ;
    public final EObject ruleTabActivity() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token lv_position_2_0=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        EObject lv_tabs_5_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:437:28: ( (otherlv_0= 'tabactivity' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_position_2_0= 'top' ) ) | otherlv_3= 'bottom' )? otherlv_4= '{' ( (lv_tabs_5_0= ruleTab ) )+ otherlv_6= '}' ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:438:1: (otherlv_0= 'tabactivity' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_position_2_0= 'top' ) ) | otherlv_3= 'bottom' )? otherlv_4= '{' ( (lv_tabs_5_0= ruleTab ) )+ otherlv_6= '}' )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:438:1: (otherlv_0= 'tabactivity' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_position_2_0= 'top' ) ) | otherlv_3= 'bottom' )? otherlv_4= '{' ( (lv_tabs_5_0= ruleTab ) )+ otherlv_6= '}' )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:438:3: otherlv_0= 'tabactivity' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_position_2_0= 'top' ) ) | otherlv_3= 'bottom' )? otherlv_4= '{' ( (lv_tabs_5_0= ruleTab ) )+ otherlv_6= '}'
            {
            otherlv_0=(Token)match(input,18,FOLLOW_18_in_ruleTabActivity921); 

                	newLeafNode(otherlv_0, grammarAccess.getTabActivityAccess().getTabactivityKeyword_0());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:442:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:443:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:443:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:444:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTabActivity938); 

            			newLeafNode(lv_name_1_0, grammarAccess.getTabActivityAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getTabActivityRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:460:2: ( ( (lv_position_2_0= 'top' ) ) | otherlv_3= 'bottom' )?
            int alt6=3;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==19) ) {
                alt6=1;
            }
            else if ( (LA6_0==20) ) {
                alt6=2;
            }
            switch (alt6) {
                case 1 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:460:3: ( (lv_position_2_0= 'top' ) )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:460:3: ( (lv_position_2_0= 'top' ) )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:461:1: (lv_position_2_0= 'top' )
                    {
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:461:1: (lv_position_2_0= 'top' )
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:462:3: lv_position_2_0= 'top'
                    {
                    lv_position_2_0=(Token)match(input,19,FOLLOW_19_in_ruleTabActivity962); 

                            newLeafNode(lv_position_2_0, grammarAccess.getTabActivityAccess().getPositionTopKeyword_2_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTabActivityRule());
                    	        }
                           		setWithLastConsumed(current, "position", true, "top");
                    	    

                    }


                    }


                    }
                    break;
                case 2 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:476:7: otherlv_3= 'bottom'
                    {
                    otherlv_3=(Token)match(input,20,FOLLOW_20_in_ruleTabActivity993); 

                        	newLeafNode(otherlv_3, grammarAccess.getTabActivityAccess().getBottomKeyword_2_1());
                        

                    }
                    break;

            }

            otherlv_4=(Token)match(input,13,FOLLOW_13_in_ruleTabActivity1007); 

                	newLeafNode(otherlv_4, grammarAccess.getTabActivityAccess().getLeftCurlyBracketKeyword_3());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:484:1: ( (lv_tabs_5_0= ruleTab ) )+
            int cnt7=0;
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( (LA7_0==21) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:485:1: (lv_tabs_5_0= ruleTab )
            	    {
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:485:1: (lv_tabs_5_0= ruleTab )
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:486:3: lv_tabs_5_0= ruleTab
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getTabActivityAccess().getTabsTabParserRuleCall_4_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleTab_in_ruleTabActivity1028);
            	    lv_tabs_5_0=ruleTab();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getTabActivityRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"tabs",
            	            		lv_tabs_5_0, 
            	            		"Tab");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt7 >= 1 ) break loop7;
                        EarlyExitException eee =
                            new EarlyExitException(7, input);
                        throw eee;
                }
                cnt7++;
            } while (true);

            otherlv_6=(Token)match(input,14,FOLLOW_14_in_ruleTabActivity1041); 

                	newLeafNode(otherlv_6, grammarAccess.getTabActivityAccess().getRightCurlyBracketKeyword_5());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleTabActivity"


    // $ANTLR start "entryRuleTab"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:514:1: entryRuleTab returns [EObject current=null] : iv_ruleTab= ruleTab EOF ;
    public final EObject entryRuleTab() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTab = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:515:2: (iv_ruleTab= ruleTab EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:516:2: iv_ruleTab= ruleTab EOF
            {
             newCompositeNode(grammarAccess.getTabRule()); 
            pushFollow(FOLLOW_ruleTab_in_entryRuleTab1077);
            iv_ruleTab=ruleTab();

            state._fsp--;

             current =iv_ruleTab; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTab1087); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleTab"


    // $ANTLR start "ruleTab"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:523:1: ruleTab returns [EObject current=null] : (otherlv_0= 'tab' ( (lv_tag_1_0= RULE_STRING ) ) otherlv_2= '{' otherlv_3= 'activity' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'image' ( (otherlv_6= RULE_ID ) ) otherlv_7= '}' ) ;
    public final EObject ruleTab() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_tag_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token otherlv_7=null;

         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:526:28: ( (otherlv_0= 'tab' ( (lv_tag_1_0= RULE_STRING ) ) otherlv_2= '{' otherlv_3= 'activity' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'image' ( (otherlv_6= RULE_ID ) ) otherlv_7= '}' ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:527:1: (otherlv_0= 'tab' ( (lv_tag_1_0= RULE_STRING ) ) otherlv_2= '{' otherlv_3= 'activity' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'image' ( (otherlv_6= RULE_ID ) ) otherlv_7= '}' )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:527:1: (otherlv_0= 'tab' ( (lv_tag_1_0= RULE_STRING ) ) otherlv_2= '{' otherlv_3= 'activity' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'image' ( (otherlv_6= RULE_ID ) ) otherlv_7= '}' )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:527:3: otherlv_0= 'tab' ( (lv_tag_1_0= RULE_STRING ) ) otherlv_2= '{' otherlv_3= 'activity' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'image' ( (otherlv_6= RULE_ID ) ) otherlv_7= '}'
            {
            otherlv_0=(Token)match(input,21,FOLLOW_21_in_ruleTab1124); 

                	newLeafNode(otherlv_0, grammarAccess.getTabAccess().getTabKeyword_0());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:531:1: ( (lv_tag_1_0= RULE_STRING ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:532:1: (lv_tag_1_0= RULE_STRING )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:532:1: (lv_tag_1_0= RULE_STRING )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:533:3: lv_tag_1_0= RULE_STRING
            {
            lv_tag_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTab1141); 

            			newLeafNode(lv_tag_1_0, grammarAccess.getTabAccess().getTagSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getTabRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"tag",
                    		lv_tag_1_0, 
                    		"STRING");
            	    

            }


            }

            otherlv_2=(Token)match(input,13,FOLLOW_13_in_ruleTab1158); 

                	newLeafNode(otherlv_2, grammarAccess.getTabAccess().getLeftCurlyBracketKeyword_2());
                
            otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleTab1170); 

                	newLeafNode(otherlv_3, grammarAccess.getTabAccess().getActivityKeyword_3());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:557:1: ( (otherlv_4= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:558:1: (otherlv_4= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:558:1: (otherlv_4= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:559:3: otherlv_4= RULE_ID
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getTabRule());
            	        }
                    
            otherlv_4=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTab1190); 

            		newLeafNode(otherlv_4, grammarAccess.getTabAccess().getActivityActivityCrossReference_4_0()); 
            	

            }


            }

            otherlv_5=(Token)match(input,22,FOLLOW_22_in_ruleTab1202); 

                	newLeafNode(otherlv_5, grammarAccess.getTabAccess().getImageKeyword_5());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:574:1: ( (otherlv_6= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:575:1: (otherlv_6= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:575:1: (otherlv_6= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:576:3: otherlv_6= RULE_ID
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getTabRule());
            	        }
                    
            otherlv_6=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTab1222); 

            		newLeafNode(otherlv_6, grammarAccess.getTabAccess().getImageTabImageCrossReference_6_0()); 
            	

            }


            }

            otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleTab1234); 

                	newLeafNode(otherlv_7, grammarAccess.getTabAccess().getRightCurlyBracketKeyword_7());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleTab"


    // $ANTLR start "entryRuleImageLibrary"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:599:1: entryRuleImageLibrary returns [EObject current=null] : iv_ruleImageLibrary= ruleImageLibrary EOF ;
    public final EObject entryRuleImageLibrary() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleImageLibrary = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:600:2: (iv_ruleImageLibrary= ruleImageLibrary EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:601:2: iv_ruleImageLibrary= ruleImageLibrary EOF
            {
             newCompositeNode(grammarAccess.getImageLibraryRule()); 
            pushFollow(FOLLOW_ruleImageLibrary_in_entryRuleImageLibrary1270);
            iv_ruleImageLibrary=ruleImageLibrary();

            state._fsp--;

             current =iv_ruleImageLibrary; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleImageLibrary1280); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleImageLibrary"


    // $ANTLR start "ruleImageLibrary"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:608:1: ruleImageLibrary returns [EObject current=null] : ( () otherlv_1= 'imagelibrary' otherlv_2= '{' ( (lv_images_3_0= ruleImage ) )* otherlv_4= '}' ) ;
    public final EObject ruleImageLibrary() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_4=null;
        EObject lv_images_3_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:611:28: ( ( () otherlv_1= 'imagelibrary' otherlv_2= '{' ( (lv_images_3_0= ruleImage ) )* otherlv_4= '}' ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:612:1: ( () otherlv_1= 'imagelibrary' otherlv_2= '{' ( (lv_images_3_0= ruleImage ) )* otherlv_4= '}' )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:612:1: ( () otherlv_1= 'imagelibrary' otherlv_2= '{' ( (lv_images_3_0= ruleImage ) )* otherlv_4= '}' )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:612:2: () otherlv_1= 'imagelibrary' otherlv_2= '{' ( (lv_images_3_0= ruleImage ) )* otherlv_4= '}'
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:612:2: ()
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:613:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getImageLibraryAccess().getImageLibraryAction_0(),
                        current);
                

            }

            otherlv_1=(Token)match(input,23,FOLLOW_23_in_ruleImageLibrary1326); 

                	newLeafNode(otherlv_1, grammarAccess.getImageLibraryAccess().getImagelibraryKeyword_1());
                
            otherlv_2=(Token)match(input,13,FOLLOW_13_in_ruleImageLibrary1338); 

                	newLeafNode(otherlv_2, grammarAccess.getImageLibraryAccess().getLeftCurlyBracketKeyword_2());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:626:1: ( (lv_images_3_0= ruleImage ) )*
            loop8:
            do {
                int alt8=2;
                int LA8_0 = input.LA(1);

                if ( (LA8_0==22||LA8_0==25) ) {
                    alt8=1;
                }


                switch (alt8) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:627:1: (lv_images_3_0= ruleImage )
            	    {
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:627:1: (lv_images_3_0= ruleImage )
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:628:3: lv_images_3_0= ruleImage
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getImageLibraryAccess().getImagesImageParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleImage_in_ruleImageLibrary1359);
            	    lv_images_3_0=ruleImage();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getImageLibraryRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"images",
            	            		lv_images_3_0, 
            	            		"Image");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop8;
                }
            } while (true);

            otherlv_4=(Token)match(input,14,FOLLOW_14_in_ruleImageLibrary1372); 

                	newLeafNode(otherlv_4, grammarAccess.getImageLibraryAccess().getRightCurlyBracketKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleImageLibrary"


    // $ANTLR start "entryRuleImage"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:656:1: entryRuleImage returns [EObject current=null] : iv_ruleImage= ruleImage EOF ;
    public final EObject entryRuleImage() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleImage = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:657:2: (iv_ruleImage= ruleImage EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:658:2: iv_ruleImage= ruleImage EOF
            {
             newCompositeNode(grammarAccess.getImageRule()); 
            pushFollow(FOLLOW_ruleImage_in_entryRuleImage1408);
            iv_ruleImage=ruleImage();

            state._fsp--;

             current =iv_ruleImage; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleImage1418); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleImage"


    // $ANTLR start "ruleImage"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:665:1: ruleImage returns [EObject current=null] : (this_TabImage_0= ruleTabImage | this_SimpleImage_1= ruleSimpleImage ) ;
    public final EObject ruleImage() throws RecognitionException {
        EObject current = null;

        EObject this_TabImage_0 = null;

        EObject this_SimpleImage_1 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:668:28: ( (this_TabImage_0= ruleTabImage | this_SimpleImage_1= ruleSimpleImage ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:669:1: (this_TabImage_0= ruleTabImage | this_SimpleImage_1= ruleSimpleImage )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:669:1: (this_TabImage_0= ruleTabImage | this_SimpleImage_1= ruleSimpleImage )
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==25) ) {
                alt9=1;
            }
            else if ( (LA9_0==22) ) {
                alt9=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 9, 0, input);

                throw nvae;
            }
            switch (alt9) {
                case 1 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:670:5: this_TabImage_0= ruleTabImage
                    {
                     
                            newCompositeNode(grammarAccess.getImageAccess().getTabImageParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleTabImage_in_ruleImage1465);
                    this_TabImage_0=ruleTabImage();

                    state._fsp--;

                     
                            current = this_TabImage_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:680:5: this_SimpleImage_1= ruleSimpleImage
                    {
                     
                            newCompositeNode(grammarAccess.getImageAccess().getSimpleImageParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleSimpleImage_in_ruleImage1492);
                    this_SimpleImage_1=ruleSimpleImage();

                    state._fsp--;

                     
                            current = this_SimpleImage_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleImage"


    // $ANTLR start "entryRuleSimpleImage"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:696:1: entryRuleSimpleImage returns [EObject current=null] : iv_ruleSimpleImage= ruleSimpleImage EOF ;
    public final EObject entryRuleSimpleImage() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSimpleImage = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:697:2: (iv_ruleSimpleImage= ruleSimpleImage EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:698:2: iv_ruleSimpleImage= ruleSimpleImage EOF
            {
             newCompositeNode(grammarAccess.getSimpleImageRule()); 
            pushFollow(FOLLOW_ruleSimpleImage_in_entryRuleSimpleImage1527);
            iv_ruleSimpleImage=ruleSimpleImage();

            state._fsp--;

             current =iv_ruleSimpleImage; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleImage1537); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSimpleImage"


    // $ANTLR start "ruleSimpleImage"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:705:1: ruleSimpleImage returns [EObject current=null] : (otherlv_0= 'image' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'path' ( (lv_importedURI_3_0= RULE_STRING ) ) ) ;
    public final EObject ruleSimpleImage() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token lv_importedURI_3_0=null;

         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:708:28: ( (otherlv_0= 'image' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'path' ( (lv_importedURI_3_0= RULE_STRING ) ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:709:1: (otherlv_0= 'image' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'path' ( (lv_importedURI_3_0= RULE_STRING ) ) )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:709:1: (otherlv_0= 'image' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'path' ( (lv_importedURI_3_0= RULE_STRING ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:709:3: otherlv_0= 'image' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'path' ( (lv_importedURI_3_0= RULE_STRING ) )
            {
            otherlv_0=(Token)match(input,22,FOLLOW_22_in_ruleSimpleImage1574); 

                	newLeafNode(otherlv_0, grammarAccess.getSimpleImageAccess().getImageKeyword_0());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:713:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:714:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:714:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:715:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSimpleImage1591); 

            			newLeafNode(lv_name_1_0, grammarAccess.getSimpleImageAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSimpleImageRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            otherlv_2=(Token)match(input,24,FOLLOW_24_in_ruleSimpleImage1608); 

                	newLeafNode(otherlv_2, grammarAccess.getSimpleImageAccess().getPathKeyword_2());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:735:1: ( (lv_importedURI_3_0= RULE_STRING ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:736:1: (lv_importedURI_3_0= RULE_STRING )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:736:1: (lv_importedURI_3_0= RULE_STRING )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:737:3: lv_importedURI_3_0= RULE_STRING
            {
            lv_importedURI_3_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSimpleImage1625); 

            			newLeafNode(lv_importedURI_3_0, grammarAccess.getSimpleImageAccess().getImportedURISTRINGTerminalRuleCall_3_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSimpleImageRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"importedURI",
                    		lv_importedURI_3_0, 
                    		"STRING");
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSimpleImage"


    // $ANTLR start "entryRuleTabImage"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:761:1: entryRuleTabImage returns [EObject current=null] : iv_ruleTabImage= ruleTabImage EOF ;
    public final EObject entryRuleTabImage() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTabImage = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:762:2: (iv_ruleTabImage= ruleTabImage EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:763:2: iv_ruleTabImage= ruleTabImage EOF
            {
             newCompositeNode(grammarAccess.getTabImageRule()); 
            pushFollow(FOLLOW_ruleTabImage_in_entryRuleTabImage1666);
            iv_ruleTabImage=ruleTabImage();

            state._fsp--;

             current =iv_ruleTabImage; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTabImage1676); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleTabImage"


    // $ANTLR start "ruleTabImage"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:770:1: ruleTabImage returns [EObject current=null] : (otherlv_0= 'tabimage' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'selected' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'unselected' ( (otherlv_5= RULE_ID ) ) ) ;
    public final EObject ruleTabImage() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token otherlv_5=null;

         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:773:28: ( (otherlv_0= 'tabimage' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'selected' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'unselected' ( (otherlv_5= RULE_ID ) ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:774:1: (otherlv_0= 'tabimage' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'selected' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'unselected' ( (otherlv_5= RULE_ID ) ) )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:774:1: (otherlv_0= 'tabimage' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'selected' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'unselected' ( (otherlv_5= RULE_ID ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:774:3: otherlv_0= 'tabimage' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'selected' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'unselected' ( (otherlv_5= RULE_ID ) )
            {
            otherlv_0=(Token)match(input,25,FOLLOW_25_in_ruleTabImage1713); 

                	newLeafNode(otherlv_0, grammarAccess.getTabImageAccess().getTabimageKeyword_0());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:778:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:779:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:779:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:780:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTabImage1730); 

            			newLeafNode(lv_name_1_0, grammarAccess.getTabImageAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getTabImageRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            otherlv_2=(Token)match(input,26,FOLLOW_26_in_ruleTabImage1747); 

                	newLeafNode(otherlv_2, grammarAccess.getTabImageAccess().getSelectedKeyword_2());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:800:1: ( (otherlv_3= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:801:1: (otherlv_3= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:801:1: (otherlv_3= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:802:3: otherlv_3= RULE_ID
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getTabImageRule());
            	        }
                    
            otherlv_3=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTabImage1767); 

            		newLeafNode(otherlv_3, grammarAccess.getTabImageAccess().getSelectedSimpleImageCrossReference_3_0()); 
            	

            }


            }

            otherlv_4=(Token)match(input,27,FOLLOW_27_in_ruleTabImage1779); 

                	newLeafNode(otherlv_4, grammarAccess.getTabImageAccess().getUnselectedKeyword_4());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:817:1: ( (otherlv_5= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:818:1: (otherlv_5= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:818:1: (otherlv_5= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:819:3: otherlv_5= RULE_ID
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getTabImageRule());
            	        }
                    
            otherlv_5=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTabImage1799); 

            		newLeafNode(otherlv_5, grammarAccess.getTabImageAccess().getUnselectedSimpleImageCrossReference_5_0()); 
            	

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleTabImage"


    // $ANTLR start "entryRuleEventLibrary"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:838:1: entryRuleEventLibrary returns [EObject current=null] : iv_ruleEventLibrary= ruleEventLibrary EOF ;
    public final EObject entryRuleEventLibrary() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleEventLibrary = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:839:2: (iv_ruleEventLibrary= ruleEventLibrary EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:840:2: iv_ruleEventLibrary= ruleEventLibrary EOF
            {
             newCompositeNode(grammarAccess.getEventLibraryRule()); 
            pushFollow(FOLLOW_ruleEventLibrary_in_entryRuleEventLibrary1835);
            iv_ruleEventLibrary=ruleEventLibrary();

            state._fsp--;

             current =iv_ruleEventLibrary; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleEventLibrary1845); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleEventLibrary"


    // $ANTLR start "ruleEventLibrary"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:847:1: ruleEventLibrary returns [EObject current=null] : ( () otherlv_1= 'eventlibrary' otherlv_2= '{' ( (lv_events_3_0= ruleEvent ) )* otherlv_4= '}' ) ;
    public final EObject ruleEventLibrary() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_4=null;
        EObject lv_events_3_0 = null;


         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:850:28: ( ( () otherlv_1= 'eventlibrary' otherlv_2= '{' ( (lv_events_3_0= ruleEvent ) )* otherlv_4= '}' ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:851:1: ( () otherlv_1= 'eventlibrary' otherlv_2= '{' ( (lv_events_3_0= ruleEvent ) )* otherlv_4= '}' )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:851:1: ( () otherlv_1= 'eventlibrary' otherlv_2= '{' ( (lv_events_3_0= ruleEvent ) )* otherlv_4= '}' )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:851:2: () otherlv_1= 'eventlibrary' otherlv_2= '{' ( (lv_events_3_0= ruleEvent ) )* otherlv_4= '}'
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:851:2: ()
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:852:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getEventLibraryAccess().getEventLibraryAction_0(),
                        current);
                

            }

            otherlv_1=(Token)match(input,28,FOLLOW_28_in_ruleEventLibrary1891); 

                	newLeafNode(otherlv_1, grammarAccess.getEventLibraryAccess().getEventlibraryKeyword_1());
                
            otherlv_2=(Token)match(input,13,FOLLOW_13_in_ruleEventLibrary1903); 

                	newLeafNode(otherlv_2, grammarAccess.getEventLibraryAccess().getLeftCurlyBracketKeyword_2());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:865:1: ( (lv_events_3_0= ruleEvent ) )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( (LA10_0==29) ) {
                    alt10=1;
                }


                switch (alt10) {
            	case 1 :
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:866:1: (lv_events_3_0= ruleEvent )
            	    {
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:866:1: (lv_events_3_0= ruleEvent )
            	    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:867:3: lv_events_3_0= ruleEvent
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getEventLibraryAccess().getEventsEventParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleEvent_in_ruleEventLibrary1924);
            	    lv_events_3_0=ruleEvent();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getEventLibraryRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"events",
            	            		lv_events_3_0, 
            	            		"Event");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);

            otherlv_4=(Token)match(input,14,FOLLOW_14_in_ruleEventLibrary1937); 

                	newLeafNode(otherlv_4, grammarAccess.getEventLibraryAccess().getRightCurlyBracketKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleEventLibrary"


    // $ANTLR start "entryRuleEvent"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:895:1: entryRuleEvent returns [EObject current=null] : iv_ruleEvent= ruleEvent EOF ;
    public final EObject entryRuleEvent() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleEvent = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:896:2: (iv_ruleEvent= ruleEvent EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:897:2: iv_ruleEvent= ruleEvent EOF
            {
             newCompositeNode(grammarAccess.getEventRule()); 
            pushFollow(FOLLOW_ruleEvent_in_entryRuleEvent1973);
            iv_ruleEvent=ruleEvent();

            state._fsp--;

             current =iv_ruleEvent; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleEvent1983); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleEvent"


    // $ANTLR start "ruleEvent"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:904:1: ruleEvent returns [EObject current=null] : (otherlv_0= 'event' ( (lv_name_1_0= RULE_ID ) ) ) ;
    public final EObject ruleEvent() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;

         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:907:28: ( (otherlv_0= 'event' ( (lv_name_1_0= RULE_ID ) ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:908:1: (otherlv_0= 'event' ( (lv_name_1_0= RULE_ID ) ) )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:908:1: (otherlv_0= 'event' ( (lv_name_1_0= RULE_ID ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:908:3: otherlv_0= 'event' ( (lv_name_1_0= RULE_ID ) )
            {
            otherlv_0=(Token)match(input,29,FOLLOW_29_in_ruleEvent2020); 

                	newLeafNode(otherlv_0, grammarAccess.getEventAccess().getEventKeyword_0());
                
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:912:1: ( (lv_name_1_0= RULE_ID ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:913:1: (lv_name_1_0= RULE_ID )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:913:1: (lv_name_1_0= RULE_ID )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:914:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEvent2037); 

            			newLeafNode(lv_name_1_0, grammarAccess.getEventAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getEventRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleEvent"


    // $ANTLR start "entryRulePlainString"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:940:1: entryRulePlainString returns [EObject current=null] : iv_rulePlainString= rulePlainString EOF ;
    public final EObject entryRulePlainString() throws RecognitionException {
        EObject current = null;

        EObject iv_rulePlainString = null;


        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:941:2: (iv_rulePlainString= rulePlainString EOF )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:942:2: iv_rulePlainString= rulePlainString EOF
            {
             newCompositeNode(grammarAccess.getPlainStringRule()); 
            pushFollow(FOLLOW_rulePlainString_in_entryRulePlainString2080);
            iv_rulePlainString=rulePlainString();

            state._fsp--;

             current =iv_rulePlainString; 
            match(input,EOF,FOLLOW_EOF_in_entryRulePlainString2090); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRulePlainString"


    // $ANTLR start "rulePlainString"
    // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:949:1: rulePlainString returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
    public final EObject rulePlainString() throws RecognitionException {
        EObject current = null;

        Token lv_value_0_0=null;

         enterRule(); 
            
        try {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:952:28: ( ( (lv_value_0_0= RULE_STRING ) ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:953:1: ( (lv_value_0_0= RULE_STRING ) )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:953:1: ( (lv_value_0_0= RULE_STRING ) )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:954:1: (lv_value_0_0= RULE_STRING )
            {
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:954:1: (lv_value_0_0= RULE_STRING )
            // ../hu.bme.mit.androtext.nav/src-gen/hu/bme/mit/androtext/nav/parser/antlr/internal/InternalAndroNav.g:955:3: lv_value_0_0= RULE_STRING
            {
            lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlainString2131); 

            			newLeafNode(lv_value_0_0, grammarAccess.getPlainStringAccess().getValueSTRINGTerminalRuleCall_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getPlainStringRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_0_0, 
                    		"STRING");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "rulePlainString"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleAndroNavRoot_in_entryRuleAndroNavRoot75 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAndroNavRoot85 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_ruleAndroNavRoot122 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleAndroNavRoot139 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_ruleNavigation_in_ruleAndroNavRoot165 = new BitSet(new long[]{0x0000000010800002L});
    public static final BitSet FOLLOW_ruleImageLibrary_in_ruleAndroNavRoot186 = new BitSet(new long[]{0x0000000010000002L});
    public static final BitSet FOLLOW_ruleEventLibrary_in_ruleAndroNavRoot208 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleNavigation_in_entryRuleNavigation245 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleNavigation255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_ruleNavigation301 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleNavigation313 = new BitSet(new long[]{0x0000000000068000L});
    public static final BitSet FOLLOW_ruleAbstractActivity_in_ruleNavigation334 = new BitSet(new long[]{0x000000000006C000L});
    public static final BitSet FOLLOW_ruleAbstractActivity_in_ruleNavigation355 = new BitSet(new long[]{0x000000000006C000L});
    public static final BitSet FOLLOW_14_in_ruleNavigation368 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractActivity_in_entryRuleAbstractActivity404 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAbstractActivity414 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleActivity_in_ruleAbstractActivity461 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTabActivity_in_ruleAbstractActivity488 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleActivity_in_entryRuleActivity523 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleActivity533 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_ruleActivity571 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleActivity588 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleActivity605 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_ruleActivity617 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleActivity637 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_ruleActivity649 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePreferenceActivity_in_ruleActivity678 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePreferenceActivity_in_entryRulePreferenceActivity713 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePreferenceActivity723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rulePreferenceActivity760 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_rulePreferenceActivity777 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_rulePreferenceActivity794 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_16_in_rulePreferenceActivity806 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_rulePreferenceActivity826 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_rulePreferenceActivity838 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTabActivity_in_entryRuleTabActivity874 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTabActivity884 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_ruleTabActivity921 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTabActivity938 = new BitSet(new long[]{0x0000000000182000L});
    public static final BitSet FOLLOW_19_in_ruleTabActivity962 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_20_in_ruleTabActivity993 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleTabActivity1007 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_ruleTab_in_ruleTabActivity1028 = new BitSet(new long[]{0x0000000000204000L});
    public static final BitSet FOLLOW_14_in_ruleTabActivity1041 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTab_in_entryRuleTab1077 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTab1087 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_ruleTab1124 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleTab1141 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleTab1158 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_15_in_ruleTab1170 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTab1190 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_22_in_ruleTab1202 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTab1222 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_ruleTab1234 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImageLibrary_in_entryRuleImageLibrary1270 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleImageLibrary1280 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_ruleImageLibrary1326 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleImageLibrary1338 = new BitSet(new long[]{0x0000000002404000L});
    public static final BitSet FOLLOW_ruleImage_in_ruleImageLibrary1359 = new BitSet(new long[]{0x0000000002404000L});
    public static final BitSet FOLLOW_14_in_ruleImageLibrary1372 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleImage_in_entryRuleImage1408 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleImage1418 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTabImage_in_ruleImage1465 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSimpleImage_in_ruleImage1492 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSimpleImage_in_entryRuleSimpleImage1527 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSimpleImage1537 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_ruleSimpleImage1574 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleSimpleImage1591 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_24_in_ruleSimpleImage1608 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleSimpleImage1625 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTabImage_in_entryRuleTabImage1666 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTabImage1676 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_ruleTabImage1713 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTabImage1730 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_26_in_ruleTabImage1747 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTabImage1767 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_27_in_ruleTabImage1779 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleTabImage1799 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEventLibrary_in_entryRuleEventLibrary1835 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEventLibrary1845 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_ruleEventLibrary1891 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleEventLibrary1903 = new BitSet(new long[]{0x0000000020004000L});
    public static final BitSet FOLLOW_ruleEvent_in_ruleEventLibrary1924 = new BitSet(new long[]{0x0000000020004000L});
    public static final BitSet FOLLOW_14_in_ruleEventLibrary1937 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEvent_in_entryRuleEvent1973 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEvent1983 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_ruleEvent2020 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleEvent2037 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePlainString_in_entryRulePlainString2080 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePlainString2090 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlainString2131 = new BitSet(new long[]{0x0000000000000002L});

}